-
-
Notifications
You must be signed in to change notification settings - Fork 289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: prepareNextEpoch metric #6924
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## unstable #6924 +/- ##
=========================================
Coverage 62.52% 62.52%
=========================================
Files 575 575
Lines 60985 60986 +1
Branches 2125 2128 +3
=========================================
+ Hits 38130 38131 +1
Misses 22816 22816
Partials 39 39 |
|
Benchmark suite | Current: d94a6e1 | Previous: e6c559f | Ratio |
---|---|---|---|
phase0 processSlashings - 250000 worstcase | 149.09 us/op | 48.773 us/op | 3.06 |
Full benchmark results
Benchmark suite | Current: d94a6e1 | Previous: e6c559f | Ratio |
---|---|---|---|
getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 539.46 us/op | 680.59 us/op | 0.79 |
getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 56.341 us/op | 37.482 us/op | 1.50 |
BLS verify - blst-native | 1.2615 ms/op | 1.0529 ms/op | 1.20 |
BLS verifyMultipleSignatures 3 - blst-native | 2.6747 ms/op | 2.2441 ms/op | 1.19 |
BLS verifyMultipleSignatures 8 - blst-native | 5.9384 ms/op | 4.9718 ms/op | 1.19 |
BLS verifyMultipleSignatures 32 - blst-native | 21.807 ms/op | 18.278 ms/op | 1.19 |
BLS verifyMultipleSignatures 64 - blst-native | 42.817 ms/op | 36.012 ms/op | 1.19 |
BLS verifyMultipleSignatures 128 - blst-native | 84.927 ms/op | 71.514 ms/op | 1.19 |
BLS deserializing 10000 signatures | 887.98 ms/op | 760.79 ms/op | 1.17 |
BLS deserializing 100000 signatures | 8.8435 s/op | 7.5924 s/op | 1.16 |
BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.3716 ms/op | 1.0994 ms/op | 1.25 |
BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.4599 ms/op | 1.2495 ms/op | 1.17 |
BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.2817 ms/op | 2.0526 ms/op | 1.11 |
BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.7471 ms/op | 3.2425 ms/op | 1.16 |
BLS verifyMultipleSignatures - same message - 128 - blst-native | 5.5643 ms/op | 5.3955 ms/op | 1.03 |
BLS aggregatePubkeys 32 - blst-native | 25.319 us/op | 22.102 us/op | 1.15 |
BLS aggregatePubkeys 128 - blst-native | 99.489 us/op | 82.664 us/op | 1.20 |
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 88.336 ms/op | 57.600 ms/op | 1.53 |
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 54.174 ms/op | 41.358 ms/op | 1.31 |
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 37.135 ms/op | 28.982 ms/op | 1.28 |
getSlashingsAndExits - default max | 98.444 us/op | 69.462 us/op | 1.42 |
getSlashingsAndExits - 2k | 327.43 us/op | 229.50 us/op | 1.43 |
proposeBlockBody type=full, size=empty | 5.9492 ms/op | 5.0027 ms/op | 1.19 |
isKnown best case - 1 super set check | 401.00 ns/op | 225.00 ns/op | 1.78 |
isKnown normal case - 2 super set checks | 338.00 ns/op | 221.00 ns/op | 1.53 |
isKnown worse case - 16 super set checks | 395.00 ns/op | 223.00 ns/op | 1.77 |
InMemoryCheckpointStateCache - add get delete | 5.5570 us/op | 3.6990 us/op | 1.50 |
validate api signedAggregateAndProof - struct | 2.7058 ms/op | 2.2215 ms/op | 1.22 |
validate gossip signedAggregateAndProof - struct | 2.7038 ms/op | 2.2253 ms/op | 1.22 |
validate gossip attestation - vc 640000 | 1.3199 ms/op | 1.0987 ms/op | 1.20 |
batch validate gossip attestation - vc 640000 - chunk 32 | 162.88 us/op | 126.21 us/op | 1.29 |
batch validate gossip attestation - vc 640000 - chunk 64 | 144.64 us/op | 114.32 us/op | 1.27 |
batch validate gossip attestation - vc 640000 - chunk 128 | 132.01 us/op | 105.64 us/op | 1.25 |
batch validate gossip attestation - vc 640000 - chunk 256 | 126.86 us/op | 104.59 us/op | 1.21 |
pickEth1Vote - no votes | 1.2180 ms/op | 847.56 us/op | 1.44 |
pickEth1Vote - max votes | 8.3531 ms/op | 7.2483 ms/op | 1.15 |
pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 13.184 ms/op | 13.108 ms/op | 1.01 |
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 21.852 ms/op | 17.456 ms/op | 1.25 |
pickEth1Vote - Eth1Data fastSerialize value x2048 | 520.41 us/op | 330.40 us/op | 1.58 |
pickEth1Vote - Eth1Data fastSerialize tree x2048 | 5.2145 ms/op | 4.7988 ms/op | 1.09 |
bytes32 toHexString | 522.00 ns/op | 353.00 ns/op | 1.48 |
bytes32 Buffer.toString(hex) | 259.00 ns/op | 190.00 ns/op | 1.36 |
bytes32 Buffer.toString(hex) from Uint8Array | 436.00 ns/op | 265.00 ns/op | 1.65 |
bytes32 Buffer.toString(hex) + 0x | 260.00 ns/op | 187.00 ns/op | 1.39 |
Object access 1 prop | 0.14700 ns/op | 0.11200 ns/op | 1.31 |
Map access 1 prop | 0.14300 ns/op | 0.10700 ns/op | 1.34 |
Object get x1000 | 7.4890 ns/op | 5.1910 ns/op | 1.44 |
Map get x1000 | 7.3250 ns/op | 5.5090 ns/op | 1.33 |
Object set x1000 | 35.603 ns/op | 24.932 ns/op | 1.43 |
Map set x1000 | 23.204 ns/op | 18.212 ns/op | 1.27 |
Return object 10000 times | 0.30770 ns/op | 0.27050 ns/op | 1.14 |
Throw Error 10000 times | 3.4820 us/op | 2.5170 us/op | 1.38 |
fastMsgIdFn sha256 / 200 bytes | 2.3420 us/op | 1.5780 us/op | 1.48 |
fastMsgIdFn h32 xxhash / 200 bytes | 277.00 ns/op | 178.00 ns/op | 1.56 |
fastMsgIdFn h64 xxhash / 200 bytes | 289.00 ns/op | 200.00 ns/op | 1.45 |
fastMsgIdFn sha256 / 1000 bytes | 7.4900 us/op | 5.3350 us/op | 1.40 |
fastMsgIdFn h32 xxhash / 1000 bytes | 391.00 ns/op | 295.00 ns/op | 1.33 |
fastMsgIdFn h64 xxhash / 1000 bytes | 357.00 ns/op | 263.00 ns/op | 1.36 |
fastMsgIdFn sha256 / 10000 bytes | 65.460 us/op | 46.294 us/op | 1.41 |
fastMsgIdFn h32 xxhash / 10000 bytes | 1.9770 us/op | 1.5850 us/op | 1.25 |
fastMsgIdFn h64 xxhash / 10000 bytes | 1.2740 us/op | 1.0220 us/op | 1.25 |
send data - 1000 256B messages | 14.180 ms/op | 9.4890 ms/op | 1.49 |
send data - 1000 512B messages | 19.302 ms/op | 12.867 ms/op | 1.50 |
send data - 1000 1024B messages | 29.156 ms/op | 19.907 ms/op | 1.46 |
send data - 1000 1200B messages | 27.443 ms/op | 21.536 ms/op | 1.27 |
send data - 1000 2048B messages | 32.374 ms/op | 26.333 ms/op | 1.23 |
send data - 1000 4096B messages | 30.150 ms/op | 24.722 ms/op | 1.22 |
send data - 1000 16384B messages | 76.186 ms/op | 59.399 ms/op | 1.28 |
send data - 1000 65536B messages | 224.63 ms/op | 184.61 ms/op | 1.22 |
enrSubnets - fastDeserialize 64 bits | 1.0980 us/op | 808.00 ns/op | 1.36 |
enrSubnets - ssz BitVector 64 bits | 358.00 ns/op | 266.00 ns/op | 1.35 |
enrSubnets - fastDeserialize 4 bits | 151.00 ns/op | 121.00 ns/op | 1.25 |
enrSubnets - ssz BitVector 4 bits | 358.00 ns/op | 263.00 ns/op | 1.36 |
prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 140.21 us/op | 110.38 us/op | 1.27 |
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 162.80 us/op | 129.77 us/op | 1.25 |
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 227.15 us/op | 189.31 us/op | 1.20 |
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 407.54 us/op | 336.56 us/op | 1.21 |
prioritizePeers score 0:0 att 64-1 sync 4-1 | 502.78 us/op | 405.49 us/op | 1.24 |
array of 16000 items push then shift | 1.6784 us/op | 1.1859 us/op | 1.42 |
LinkedList of 16000 items push then shift | 7.4940 ns/op | 7.0350 ns/op | 1.07 |
array of 16000 items push then pop | 118.67 ns/op | 77.215 ns/op | 1.54 |
LinkedList of 16000 items push then pop | 7.2100 ns/op | 6.0860 ns/op | 1.18 |
array of 24000 items push then shift | 2.4624 us/op | 1.7278 us/op | 1.43 |
LinkedList of 24000 items push then shift | 7.8460 ns/op | 6.3580 ns/op | 1.23 |
array of 24000 items push then pop | 156.64 ns/op | 98.779 ns/op | 1.59 |
LinkedList of 24000 items push then pop | 8.6770 ns/op | 5.6940 ns/op | 1.52 |
intersect bitArray bitLen 8 | 6.9030 ns/op | 4.8560 ns/op | 1.42 |
intersect array and set length 8 | 53.680 ns/op | 34.627 ns/op | 1.55 |
intersect bitArray bitLen 128 | 31.787 ns/op | 24.696 ns/op | 1.29 |
intersect array and set length 128 | 696.47 ns/op | 528.50 ns/op | 1.32 |
bitArray.getTrueBitIndexes() bitLen 128 | 1.3640 us/op | 1.0660 us/op | 1.28 |
bitArray.getTrueBitIndexes() bitLen 248 | 2.2810 us/op | 1.8360 us/op | 1.24 |
bitArray.getTrueBitIndexes() bitLen 512 | 4.4740 us/op | 3.4220 us/op | 1.31 |
Buffer.concat 32 items | 964.00 ns/op | 759.00 ns/op | 1.27 |
Uint8Array.set 32 items | 1.4490 us/op | 1.5850 us/op | 0.91 |
Buffer.copy | 2.1930 us/op | 2.0840 us/op | 1.05 |
Uint8Array.set - with subarray | 2.7380 us/op | 2.8890 us/op | 0.95 |
Uint8Array.set - without subarray | 2.0680 us/op | 1.8590 us/op | 1.11 |
Set add up to 64 items then delete first | 2.5917 us/op | 1.7721 us/op | 1.46 |
OrderedSet add up to 64 items then delete first | 3.8041 us/op | 2.7261 us/op | 1.40 |
Set add up to 64 items then delete last | 2.6715 us/op | 2.0798 us/op | 1.28 |
OrderedSet add up to 64 items then delete last | 3.8166 us/op | 2.9007 us/op | 1.32 |
Set add up to 64 items then delete middle | 2.7481 us/op | 1.8476 us/op | 1.49 |
OrderedSet add up to 64 items then delete middle | 6.2581 us/op | 4.1120 us/op | 1.52 |
Set add up to 128 items then delete first | 6.2991 us/op | 3.9800 us/op | 1.58 |
OrderedSet add up to 128 items then delete first | 8.7553 us/op | 6.1807 us/op | 1.42 |
Set add up to 128 items then delete last | 6.8307 us/op | 3.8154 us/op | 1.79 |
OrderedSet add up to 128 items then delete last | 8.4808 us/op | 5.7575 us/op | 1.47 |
Set add up to 128 items then delete middle | 5.4070 us/op | 3.8230 us/op | 1.41 |
OrderedSet add up to 128 items then delete middle | 16.774 us/op | 11.233 us/op | 1.49 |
Set add up to 256 items then delete first | 12.745 us/op | 7.7339 us/op | 1.65 |
OrderedSet add up to 256 items then delete first | 19.565 us/op | 12.154 us/op | 1.61 |
Set add up to 256 items then delete last | 10.930 us/op | 7.4695 us/op | 1.46 |
OrderedSet add up to 256 items then delete last | 16.325 us/op | 11.429 us/op | 1.43 |
Set add up to 256 items then delete middle | 10.857 us/op | 7.4371 us/op | 1.46 |
OrderedSet add up to 256 items then delete middle | 49.014 us/op | 33.522 us/op | 1.46 |
transfer serialized Status (84 B) | 1.4140 us/op | 1.2560 us/op | 1.13 |
copy serialized Status (84 B) | 1.2140 us/op | 974.00 ns/op | 1.25 |
transfer serialized SignedVoluntaryExit (112 B) | 1.4860 us/op | 1.3000 us/op | 1.14 |
copy serialized SignedVoluntaryExit (112 B) | 1.2350 us/op | 1.0520 us/op | 1.17 |
transfer serialized ProposerSlashing (416 B) | 2.5870 us/op | 2.0170 us/op | 1.28 |
copy serialized ProposerSlashing (416 B) | 2.9350 us/op | 2.1440 us/op | 1.37 |
transfer serialized Attestation (485 B) | 2.0420 us/op | 1.9400 us/op | 1.05 |
copy serialized Attestation (485 B) | 1.6700 us/op | 2.0850 us/op | 0.80 |
transfer serialized AttesterSlashing (33232 B) | 1.9880 us/op | 1.9820 us/op | 1.00 |
copy serialized AttesterSlashing (33232 B) | 5.2610 us/op | 5.6550 us/op | 0.93 |
transfer serialized Small SignedBeaconBlock (128000 B) | 2.1920 us/op | 2.4230 us/op | 0.90 |
copy serialized Small SignedBeaconBlock (128000 B) | 14.658 us/op | 12.111 us/op | 1.21 |
transfer serialized Avg SignedBeaconBlock (200000 B) | 2.7340 us/op | 2.6970 us/op | 1.01 |
copy serialized Avg SignedBeaconBlock (200000 B) | 21.584 us/op | 17.000 us/op | 1.27 |
transfer serialized BlobsSidecar (524380 B) | 2.8950 us/op | 2.5320 us/op | 1.14 |
copy serialized BlobsSidecar (524380 B) | 80.996 us/op | 109.53 us/op | 0.74 |
transfer serialized Big SignedBeaconBlock (1000000 B) | 3.2400 us/op | 2.9630 us/op | 1.09 |
copy serialized Big SignedBeaconBlock (1000000 B) | 225.96 us/op | 130.50 us/op | 1.73 |
pass gossip attestations to forkchoice per slot | 3.1743 ms/op | 2.3925 ms/op | 1.33 |
forkChoice updateHead vc 100000 bc 64 eq 0 | 588.77 us/op | 374.43 us/op | 1.57 |
forkChoice updateHead vc 600000 bc 64 eq 0 | 3.3503 ms/op | 2.5107 ms/op | 1.33 |
forkChoice updateHead vc 1000000 bc 64 eq 0 | 5.4658 ms/op | 4.5978 ms/op | 1.19 |
forkChoice updateHead vc 600000 bc 320 eq 0 | 3.1679 ms/op | 2.5358 ms/op | 1.25 |
forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.2466 ms/op | 2.5371 ms/op | 1.28 |
forkChoice updateHead vc 600000 bc 7200 eq 0 | 4.3136 ms/op | 2.7924 ms/op | 1.54 |
forkChoice updateHead vc 600000 bc 64 eq 1000 | 11.209 ms/op | 9.4519 ms/op | 1.19 |
forkChoice updateHead vc 600000 bc 64 eq 10000 | 11.211 ms/op | 9.3944 ms/op | 1.19 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 16.059 ms/op | 10.875 ms/op | 1.48 |
computeDeltas 500000 validators 300 proto nodes | 3.8585 ms/op | 3.0213 ms/op | 1.28 |
computeDeltas 500000 validators 1200 proto nodes | 3.8232 ms/op | 3.1402 ms/op | 1.22 |
computeDeltas 500000 validators 7200 proto nodes | 3.8295 ms/op | 3.0369 ms/op | 1.26 |
computeDeltas 750000 validators 300 proto nodes | 5.3763 ms/op | 4.4145 ms/op | 1.22 |
computeDeltas 750000 validators 1200 proto nodes | 5.3014 ms/op | 4.4399 ms/op | 1.19 |
computeDeltas 750000 validators 7200 proto nodes | 5.3881 ms/op | 4.3963 ms/op | 1.23 |
computeDeltas 1400000 validators 300 proto nodes | 10.121 ms/op | 8.2329 ms/op | 1.23 |
computeDeltas 1400000 validators 1200 proto nodes | 10.246 ms/op | 8.2271 ms/op | 1.25 |
computeDeltas 1400000 validators 7200 proto nodes | 10.400 ms/op | 8.2651 ms/op | 1.26 |
computeDeltas 2100000 validators 300 proto nodes | 15.532 ms/op | 11.962 ms/op | 1.30 |
computeDeltas 2100000 validators 1200 proto nodes | 16.383 ms/op | 12.354 ms/op | 1.33 |
computeDeltas 2100000 validators 7200 proto nodes | 16.372 ms/op | 12.111 ms/op | 1.35 |
altair processAttestation - 250000 vs - 7PWei normalcase | 2.2228 ms/op | 1.3274 ms/op | 1.67 |
altair processAttestation - 250000 vs - 7PWei worstcase | 3.1547 ms/op | 2.0343 ms/op | 1.55 |
altair processAttestation - setStatus - 1/6 committees join | 102.90 us/op | 68.473 us/op | 1.50 |
altair processAttestation - setStatus - 1/3 committees join | 190.87 us/op | 131.70 us/op | 1.45 |
altair processAttestation - setStatus - 1/2 committees join | 268.26 us/op | 183.78 us/op | 1.46 |
altair processAttestation - setStatus - 2/3 committees join | 353.12 us/op | 262.07 us/op | 1.35 |
altair processAttestation - setStatus - 4/5 committees join | 523.87 us/op | 377.46 us/op | 1.39 |
altair processAttestation - setStatus - 100% committees join | 696.67 us/op | 456.20 us/op | 1.53 |
altair processBlock - 250000 vs - 7PWei normalcase | 5.2407 ms/op | 3.4702 ms/op | 1.51 |
altair processBlock - 250000 vs - 7PWei normalcase hashState | 39.453 ms/op | 24.516 ms/op | 1.61 |
altair processBlock - 250000 vs - 7PWei worstcase | 48.067 ms/op | 39.116 ms/op | 1.23 |
altair processBlock - 250000 vs - 7PWei worstcase hashState | 98.580 ms/op | 76.947 ms/op | 1.28 |
phase0 processBlock - 250000 vs - 7PWei normalcase | 2.6377 ms/op | 2.1728 ms/op | 1.21 |
phase0 processBlock - 250000 vs - 7PWei worstcase | 31.822 ms/op | 22.028 ms/op | 1.44 |
altair processEth1Data - 250000 vs - 7PWei normalcase | 417.51 us/op | 237.11 us/op | 1.76 |
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 8.7040 us/op | 4.1210 us/op | 2.11 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 39.764 us/op | 17.538 us/op | 2.27 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 11.348 us/op | 6.3970 us/op | 1.77 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 9.8530 us/op | 4.5490 us/op | 2.17 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 137.91 us/op | 69.570 us/op | 1.98 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.0276 ms/op | 490.12 us/op | 2.10 |
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.1290 ms/op | 1.0416 ms/op | 1.08 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.2248 ms/op | 1.1104 ms/op | 1.10 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.8667 ms/op | 1.8457 ms/op | 1.55 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.0228 ms/op | 1.1820 ms/op | 1.71 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 5.3179 ms/op | 2.9122 ms/op | 1.83 |
Tree 40 250000 create | 283.86 ms/op | 174.28 ms/op | 1.63 |
Tree 40 250000 get(125000) | 159.76 ns/op | 103.06 ns/op | 1.55 |
Tree 40 250000 set(125000) | 780.36 ns/op | 482.01 ns/op | 1.62 |
Tree 40 250000 toArray() | 21.625 ms/op | 11.896 ms/op | 1.82 |
Tree 40 250000 iterate all - toArray() + loop | 21.429 ms/op | 11.851 ms/op | 1.81 |
Tree 40 250000 iterate all - get(i) | 65.536 ms/op | 39.135 ms/op | 1.67 |
MutableVector 250000 create | 16.176 ms/op | 12.563 ms/op | 1.29 |
MutableVector 250000 get(125000) | 6.8900 ns/op | 5.6030 ns/op | 1.23 |
MutableVector 250000 set(125000) | 585.91 ns/op | 161.61 ns/op | 3.63 |
MutableVector 250000 toArray() | 6.1829 ms/op | 2.5575 ms/op | 2.42 |
MutableVector 250000 iterate all - toArray() + loop | 6.3670 ms/op | 2.6683 ms/op | 2.39 |
MutableVector 250000 iterate all - get(i) | 1.8181 ms/op | 1.4069 ms/op | 1.29 |
Array 250000 create | 4.7635 ms/op | 2.2465 ms/op | 2.12 |
Array 250000 clone - spread | 1.8486 ms/op | 1.1641 ms/op | 1.59 |
Array 250000 get(125000) | 0.45800 ns/op | 0.35600 ns/op | 1.29 |
Array 250000 set(125000) | 0.48200 ns/op | 0.36600 ns/op | 1.32 |
Array 250000 iterate all - loop | 102.43 us/op | 74.972 us/op | 1.37 |
effectiveBalanceIncrements clone Uint8Array 300000 | 73.692 us/op | 12.708 us/op | 5.80 |
effectiveBalanceIncrements clone MutableVector 300000 | 136.00 ns/op | 101.00 ns/op | 1.35 |
effectiveBalanceIncrements rw all Uint8Array 300000 | 208.75 us/op | 162.95 us/op | 1.28 |
effectiveBalanceIncrements rw all MutableVector 300000 | 104.05 ms/op | 52.654 ms/op | 1.98 |
phase0 afterProcessEpoch - 250000 vs - 7PWei | 93.960 ms/op | 77.154 ms/op | 1.22 |
phase0 beforeProcessEpoch - 250000 vs - 7PWei | 46.376 ms/op | 36.117 ms/op | 1.28 |
altair processEpoch - mainnet_e81889 | 454.90 ms/op | 347.15 ms/op | 1.31 |
mainnet_e81889 - altair beforeProcessEpoch | 65.778 ms/op | 43.367 ms/op | 1.52 |
mainnet_e81889 - altair processJustificationAndFinalization | 14.102 us/op | 9.2700 us/op | 1.52 |
mainnet_e81889 - altair processInactivityUpdates | 8.2980 ms/op | 5.2472 ms/op | 1.58 |
mainnet_e81889 - altair processRewardsAndPenalties | 55.717 ms/op | 49.556 ms/op | 1.12 |
mainnet_e81889 - altair processRegistryUpdates | 2.1520 us/op | 1.5830 us/op | 1.36 |
mainnet_e81889 - altair processSlashings | 431.00 ns/op | 348.00 ns/op | 1.24 |
mainnet_e81889 - altair processEth1DataReset | 354.00 ns/op | 267.00 ns/op | 1.33 |
mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.0052 ms/op | 1.1248 ms/op | 1.78 |
mainnet_e81889 - altair processSlashingsReset | 3.1830 us/op | 2.3290 us/op | 1.37 |
mainnet_e81889 - altair processRandaoMixesReset | 3.8130 us/op | 2.9780 us/op | 1.28 |
mainnet_e81889 - altair processHistoricalRootsUpdate | 406.00 ns/op | 365.00 ns/op | 1.11 |
mainnet_e81889 - altair processParticipationFlagUpdates | 3.2840 us/op | 1.2480 us/op | 2.63 |
mainnet_e81889 - altair processSyncCommitteeUpdates | 542.00 ns/op | 297.00 ns/op | 1.82 |
mainnet_e81889 - altair afterProcessEpoch | 98.534 ms/op | 80.556 ms/op | 1.22 |
capella processEpoch - mainnet_e217614 | 1.4934 s/op | 1.1798 s/op | 1.27 |
mainnet_e217614 - capella beforeProcessEpoch | 316.33 ms/op | 217.77 ms/op | 1.45 |
mainnet_e217614 - capella processJustificationAndFinalization | 21.730 us/op | 9.7180 us/op | 2.24 |
mainnet_e217614 - capella processInactivityUpdates | 24.432 ms/op | 14.896 ms/op | 1.64 |
mainnet_e217614 - capella processRewardsAndPenalties | 274.31 ms/op | 251.56 ms/op | 1.09 |
mainnet_e217614 - capella processRegistryUpdates | 17.462 us/op | 10.264 us/op | 1.70 |
mainnet_e217614 - capella processSlashings | 499.00 ns/op | 313.00 ns/op | 1.59 |
mainnet_e217614 - capella processEth1DataReset | 361.00 ns/op | 240.00 ns/op | 1.50 |
mainnet_e217614 - capella processEffectiveBalanceUpdates | 14.702 ms/op | 3.8012 ms/op | 3.87 |
mainnet_e217614 - capella processSlashingsReset | 4.6350 us/op | 1.5520 us/op | 2.99 |
mainnet_e217614 - capella processRandaoMixesReset | 7.7680 us/op | 2.3650 us/op | 3.28 |
mainnet_e217614 - capella processHistoricalRootsUpdate | 813.00 ns/op | 265.00 ns/op | 3.07 |
mainnet_e217614 - capella processParticipationFlagUpdates | 2.3200 us/op | 1.1070 us/op | 2.10 |
mainnet_e217614 - capella afterProcessEpoch | 291.15 ms/op | 228.63 ms/op | 1.27 |
phase0 processEpoch - mainnet_e58758 | 499.92 ms/op | 354.81 ms/op | 1.41 |
mainnet_e58758 - phase0 beforeProcessEpoch | 159.85 ms/op | 98.406 ms/op | 1.62 |
mainnet_e58758 - phase0 processJustificationAndFinalization | 20.860 us/op | 9.4680 us/op | 2.20 |
mainnet_e58758 - phase0 processRewardsAndPenalties | 41.003 ms/op | 32.832 ms/op | 1.25 |
mainnet_e58758 - phase0 processRegistryUpdates | 10.021 us/op | 5.6420 us/op | 1.78 |
mainnet_e58758 - phase0 processSlashings | 677.00 ns/op | 288.00 ns/op | 2.35 |
mainnet_e58758 - phase0 processEth1DataReset | 646.00 ns/op | 300.00 ns/op | 2.15 |
mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.5003 ms/op | 723.34 us/op | 2.07 |
mainnet_e58758 - phase0 processSlashingsReset | 3.3350 us/op | 1.4860 us/op | 2.24 |
mainnet_e58758 - phase0 processRandaoMixesReset | 4.8680 us/op | 2.2010 us/op | 2.21 |
mainnet_e58758 - phase0 processHistoricalRootsUpdate | 645.00 ns/op | 274.00 ns/op | 2.35 |
mainnet_e58758 - phase0 processParticipationRecordUpdates | 4.0400 us/op | 3.4700 us/op | 1.16 |
mainnet_e58758 - phase0 afterProcessEpoch | 85.838 ms/op | 63.283 ms/op | 1.36 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.6820 ms/op | 755.84 us/op | 2.23 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 3.2471 ms/op | 1.4120 ms/op | 2.30 |
altair processInactivityUpdates - 250000 normalcase | 24.295 ms/op | 16.188 ms/op | 1.50 |
altair processInactivityUpdates - 250000 worstcase | 23.035 ms/op | 16.084 ms/op | 1.43 |
phase0 processRegistryUpdates - 250000 normalcase | 12.061 us/op | 4.2810 us/op | 2.82 |
phase0 processRegistryUpdates - 250000 badcase_full_deposits | 375.30 us/op | 302.09 us/op | 1.24 |
phase0 processRegistryUpdates - 250000 worstcase 0.5 | 128.01 ms/op | 107.69 ms/op | 1.19 |
altair processRewardsAndPenalties - 250000 normalcase | 49.093 ms/op | 39.511 ms/op | 1.24 |
altair processRewardsAndPenalties - 250000 worstcase | 45.026 ms/op | 39.312 ms/op | 1.15 |
phase0 getAttestationDeltas - 250000 normalcase | 8.8512 ms/op | 5.6705 ms/op | 1.56 |
phase0 getAttestationDeltas - 250000 worstcase | 14.495 ms/op | 5.9105 ms/op | 2.45 |
phase0 processSlashings - 250000 worstcase | 149.09 us/op | 48.773 us/op | 3.06 |
altair processSyncCommitteeUpdates - 250000 | 157.51 ms/op | 107.30 ms/op | 1.47 |
BeaconState.hashTreeRoot - No change | 473.00 ns/op | 217.00 ns/op | 2.18 |
BeaconState.hashTreeRoot - 1 full validator | 136.06 us/op | 115.84 us/op | 1.17 |
BeaconState.hashTreeRoot - 32 full validator | 1.6424 ms/op | 1.3593 ms/op | 1.21 |
BeaconState.hashTreeRoot - 512 full validator | 13.372 ms/op | 13.302 ms/op | 1.01 |
BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 159.20 us/op | 128.00 us/op | 1.24 |
BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.3978 ms/op | 1.6546 ms/op | 1.45 |
BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 29.601 ms/op | 20.866 ms/op | 1.42 |
BeaconState.hashTreeRoot - 1 balances | 117.98 us/op | 122.88 us/op | 0.96 |
BeaconState.hashTreeRoot - 32 balances | 1.1121 ms/op | 784.34 us/op | 1.42 |
BeaconState.hashTreeRoot - 512 balances | 11.089 ms/op | 11.739 ms/op | 0.94 |
BeaconState.hashTreeRoot - 250000 balances | 188.00 ms/op | 164.03 ms/op | 1.15 |
aggregationBits - 2048 els - zipIndexesInBitList | 38.805 us/op | 18.713 us/op | 2.07 |
byteArrayEquals 32 | 57.591 ns/op | 46.390 ns/op | 1.24 |
Buffer.compare 32 | 19.158 ns/op | 16.062 ns/op | 1.19 |
byteArrayEquals 1024 | 1.6606 us/op | 1.2397 us/op | 1.34 |
Buffer.compare 1024 | 30.078 ns/op | 22.594 ns/op | 1.33 |
byteArrayEquals 16384 | 27.677 us/op | 19.672 us/op | 1.41 |
Buffer.compare 16384 | 212.45 ns/op | 175.26 ns/op | 1.21 |
byteArrayEquals 123687377 | 205.29 ms/op | 146.38 ms/op | 1.40 |
Buffer.compare 123687377 | 8.2483 ms/op | 3.6191 ms/op | 2.28 |
byteArrayEquals 32 - diff last byte | 56.793 ns/op | 45.481 ns/op | 1.25 |
Buffer.compare 32 - diff last byte | 19.915 ns/op | 15.718 ns/op | 1.27 |
byteArrayEquals 1024 - diff last byte | 1.7512 us/op | 1.2204 us/op | 1.43 |
Buffer.compare 1024 - diff last byte | 28.548 ns/op | 22.587 ns/op | 1.26 |
byteArrayEquals 16384 - diff last byte | 27.834 us/op | 19.385 us/op | 1.44 |
Buffer.compare 16384 - diff last byte | 197.25 ns/op | 168.99 ns/op | 1.17 |
byteArrayEquals 123687377 - diff last byte | 198.36 ms/op | 145.72 ms/op | 1.36 |
Buffer.compare 123687377 - diff last byte | 7.8254 ms/op | 5.2654 ms/op | 1.49 |
byteArrayEquals 32 - random bytes | 5.4110 ns/op | 4.2380 ns/op | 1.28 |
Buffer.compare 32 - random bytes | 17.795 ns/op | 14.002 ns/op | 1.27 |
byteArrayEquals 1024 - random bytes | 5.3370 ns/op | 4.2100 ns/op | 1.27 |
Buffer.compare 1024 - random bytes | 17.721 ns/op | 13.798 ns/op | 1.28 |
byteArrayEquals 16384 - random bytes | 5.4240 ns/op | 4.2030 ns/op | 1.29 |
Buffer.compare 16384 - random bytes | 17.713 ns/op | 13.767 ns/op | 1.29 |
byteArrayEquals 123687377 - random bytes | 6.8600 ns/op | 5.4700 ns/op | 1.25 |
Buffer.compare 123687377 - random bytes | 19.700 ns/op | 14.670 ns/op | 1.34 |
regular array get 100000 times | 40.553 us/op | 27.323 us/op | 1.48 |
wrappedArray get 100000 times | 35.512 us/op | 27.097 us/op | 1.31 |
arrayWithProxy get 100000 times | 13.917 ms/op | 8.2046 ms/op | 1.70 |
ssz.Root.equals | 47.384 ns/op | 39.494 ns/op | 1.20 |
byteArrayEquals | 46.519 ns/op | 39.174 ns/op | 1.19 |
Buffer.compare | 10.786 ns/op | 8.0020 ns/op | 1.35 |
shuffle list - 16384 els | 6.5625 ms/op | 5.0002 ms/op | 1.31 |
shuffle list - 250000 els | 96.167 ms/op | 72.911 ms/op | 1.32 |
processSlot - 1 slots | 14.052 us/op | 10.110 us/op | 1.39 |
processSlot - 32 slots | 2.8028 ms/op | 2.8659 ms/op | 0.98 |
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 38.423 ms/op | 42.280 ms/op | 0.91 |
getCommitteeAssignments - req 1 vs - 250000 vc | 2.2604 ms/op | 1.7798 ms/op | 1.27 |
getCommitteeAssignments - req 100 vs - 250000 vc | 4.2736 ms/op | 3.4565 ms/op | 1.24 |
getCommitteeAssignments - req 1000 vs - 250000 vc | 4.6551 ms/op | 3.6917 ms/op | 1.26 |
findModifiedValidators - 10000 modified validators | 276.58 ms/op | 228.07 ms/op | 1.21 |
findModifiedValidators - 1000 modified validators | 214.06 ms/op | 161.64 ms/op | 1.32 |
findModifiedValidators - 100 modified validators | 225.36 ms/op | 157.34 ms/op | 1.43 |
findModifiedValidators - 10 modified validators | 237.85 ms/op | 140.47 ms/op | 1.69 |
findModifiedValidators - 1 modified validators | 208.74 ms/op | 136.59 ms/op | 1.53 |
findModifiedValidators - no difference | 184.44 ms/op | 148.61 ms/op | 1.24 |
compare ViewDUs | 3.6222 s/op | 2.8320 s/op | 1.28 |
compare each validator Uint8Array | 1.5458 s/op | 1.5759 s/op | 0.98 |
compare ViewDU to Uint8Array | 1.1897 s/op | 669.58 ms/op | 1.78 |
migrate state 1000000 validators, 24 modified, 0 new | 602.45 ms/op | 569.76 ms/op | 1.06 |
migrate state 1000000 validators, 1700 modified, 1000 new | 784.69 ms/op | 795.04 ms/op | 0.99 |
migrate state 1000000 validators, 3400 modified, 2000 new | 1.0176 s/op | 990.87 ms/op | 1.03 |
migrate state 1500000 validators, 24 modified, 0 new | 574.90 ms/op | 563.49 ms/op | 1.02 |
migrate state 1500000 validators, 1700 modified, 1000 new | 832.96 ms/op | 742.10 ms/op | 1.12 |
migrate state 1500000 validators, 3400 modified, 2000 new | 1.0778 s/op | 981.87 ms/op | 1.10 |
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.9000 ns/op | 3.7200 ns/op | 1.32 |
state getBlockRootAtSlot - 250000 vs - 7PWei | 702.64 ns/op | 517.87 ns/op | 1.36 |
computeProposers - vc 250000 | 8.3508 ms/op | 6.3329 ms/op | 1.32 |
computeEpochShuffling - vc 250000 | 97.175 ms/op | 80.882 ms/op | 1.20 |
getNextSyncCommittee - vc 250000 | 139.80 ms/op | 94.895 ms/op | 1.47 |
computeSigningRoot for AttestationData | 22.084 us/op | 17.136 us/op | 1.29 |
hash AttestationData serialized data then Buffer.toString(base64) | 1.6405 us/op | 1.1619 us/op | 1.41 |
toHexString serialized data | 964.65 ns/op | 756.74 ns/op | 1.27 |
Buffer.toString(base64) | 185.37 ns/op | 139.31 ns/op | 1.33 |
by benchmarkbot/action
🎉 This PR is included in v1.20.0 🎉 |
Motivation
PrepareNextEpoch time was incorrect since #6652 because it did not count
state.hashTreeRoot()
time for the next epochDescription
precomputeNextEpochTransition
metric as the last stepprepareNextEpoch
label specifically for observingstate.hashTreeRoot()
time for the next epoch since it takes much longer compared to next slot (some could be > 1.5s), see Big state hashTreeRoot() time in lodestar #6598